
#ifndef _HTTP_MSG_H_
#define	_HTTP_MSG_H_	1



//
// CHttpMsg class is a parent class which is used for HTTP Messages, such as Request/Response.
// This class is inherited by CReqHttpMsg and CResHttpMsg classes.
class CHttpMsg
{
public:
	CHttpMsg();
	virtual ~CHttpMsg();

	// get/set functions
	char *	getMsgHeader() { return mpMsgHeader; }
	char *	getMsgBody() { return mpMsgBody; }
	int		getMsgHeaderLen() { return mHeaderLen; }
	int		getMsgBodyLen() { return mBodyLen; }
	void	setMsgHeader(char msgHeader, int headerLen);
	void	setMsgBody(char msgBody, int bodyLen);

	virtual void	cleanupMsg();

protected:
	char	*mpMsgHeader;
	char	*mpMsgBody;
	int		mHeaderLen;
	int		mBodyLen;
};



//
// CReqHttpMsg class inherits CHttpMsg class to indicate a request message.
// This class has to get some functions manipulating the message.
class CReqHttpMsg : public CHttpMsg
{
public:
	CReqHttpMsg();
	~CReqHttpMsg();

	virtual void	cleanupMsg();

	CReqHttpMsg&	operator =(const CReqHttpMsg &reqmsg);
private:
};


//
// CResHttpMsg class inherits CHttpMsg class to indicate a response message.
// This class has to get some functions manipulating the message.
class CResHttpMsg : public CHttpMsg
{
public:
	CResHttpMsg();
	~CResHttpMsg();

	virtual void	cleanupMsg();

	CResHttpMsg&	operator =(const CResHttpMsg &resmsg);
private:

};

#endif
